package com.chenfan.process.common.exception;

import com.chenfan.ccp.common.result.IResultCode;
import lombok.Getter;

/**
 * @author K
 * @date 2021/1/29
 */
@Getter
public enum ProcessResultCode implements IResultCode {
    /**************************【系统-公共错误码】**************************/
    // 操作失败
    FAILED(-1, "操作失败"),
    // 操作成功
    SUCCESS(0, "操作成功"),

    // 业务异常
    BUSINESS_ERROR(20001, "业务异常"),

    // 参数错误
    PARAM_ERROR(20002, "参数错误"),

    // 无访问权限
    UNAUTHORIZED(30001, "无访问权限"),

    NO_AUTHORIZATION_TOKEN(30002, "无访问权限标识"),

    NO_PRIVILEGE_CODE(30003, "无数据权限标识"),

    /**
     * 未找到部门负责人
     */
    DEPARTMENT_LEADER_NOT_FOUND(341001, "未找到部门负责人"),

    /**
     * 未找到对应的审批
     */
    APPROVAL_TEMPLATE_NOT_FOUND(341002, "未找到对应的审批"),
    /**
     * 没有对应的审批权限
     */
    PRIVILEGE_NOT_FOUND(341003, "没有对应的审批权限"),

    /**
     * 找不到审批节点
     */
    NEXT_APPROVAL_NODE(341004, "没有下个审批节点"),

    /**
     * 三方系统判断不通过
     */
    THIRD_CHECK_INVALIDATE(341005, "请检查是否必传参数未填或值不符合业务规则"),
    /**
     * 请提供正确的JSON格式数据
     */
    JSON_FORMAT_ERROR(341006, "请提供正确的JSON格式数据"),
    /**
     * 审批意见最长为500字符
     */
    OVER_MAX_COMMENT_SIZE(341007, "审批意见最长为500字符"),

    REQUIRE_CHECK_FIELD(341008, "缺少校验参数"),

    REQUIRE_CHECK_FIELD_NOT_CORRECT(341009, "请求参数与校验参数不一致"),

    APPROVAL_STATUS_CHANGE(341010, "当前审批状态已经变更,请刷新后查看"),

    REJECT_STATUS_CHANGE(341011, "不允许驳回至提交人，请操作审批拒绝！"),

    APPROVAL_COMPLETED(341012, "审批已完成，无法操作"),

    APPROVAL_USER_NOT_FOUND(341013, "请传入正确的用户信息, 用户ID不能为空"),

    NO_DATA_TO_TRANSFER(341014, "没有数据需要迁移"),

    NOT_EMPTY(341015, "表单属性不能为空"),

    FORM_NOT_FOUND(341016, "表单不存在"),

    FORM_EXISTS(341017, "表单名称不能相同"),

    TEMPLATE_EXISTS(341018, "审批模板Code不能相同"),


    PARAMETER_ERROR(341019, "请检查必填参数是否传递"),

    NOT_SPECIFIC_NODE(341020, "请传递必填人员参数"),

    OPTION_ERROR(341021, "未找到正确的分支条件,请检查参数"),

    FORMATTER_ERROR(341022, "非数字类型运算符错误"),

    ALREADY_EXIST_APPROVAL(341023, "已经存在流程实例, 不能修改Code"),

    TEMPLATE_TITLE_EXISTS(341024, "审批模板名称不能相同"),

    BUSINESS_DOES_NOT_FIT(341025, "业务id和业务code必须传递"),

    SAME_BRANCH_EXISTS(341026, "无法保存，已存在相同条件的分支！"),

    NODE_DATA_NOT_NULL(341027, "节点数据不能为空"),

    LINK_DATA_NOT_NULL(341028, "关联关系不能为空"),

    TEMPLATE_NOT_EXISTS(341029, "审批模板不存在"),

    STATUS_NOT_CHANGE(341030, "状态已为目标状态,无需更改"),

    APPROVAL_TEMPLATE_DISABLED(341031, "该单据对应审批流已停用，请联系管理员重新配置审批流"),

    BUSINESS_HAS_ALREADY(341032, "该单据存在未结束的审批流程"),

    APPROVAL_ID_CANNOT_EMPTY(341033, "审批实例不能为空"),

    NODE_CODE_EXISTS(341034, "节点编码不能重复"),

    HISTORY_HAS_NO_USER(341035, "历史部门负责人没有无法驳回，请终止流程！"),

    NOT_APPROVING(341036, "非审批中，不能操作！"),

    EXISTED_CURRENT_APPROVER(341037, "已存在当前审批人员，请勿重复操作！"),

    NOT_PRIVILEGE_TRANSFER(341038, "非当前节点审批人，无权操作！"),

    NOT_ACTIVE_RECEIVER(341039, "转让人非在职用户，请重新选择！"),

    NOT_SUBMITTER(341040, "非流程提起人，无权操作！"),

    DISABLE_REMIND(341041, "催办通知-功能未开启！"),

    MESSAGE_URL_NOT_NULL(341042, "跳转Url不能为空！"),
    ;

    private final int code;

    private final String message;

    ProcessResultCode(final int code, final String message) {
        this.code = code;
        this.message = message;
    }
}
